package com.zmn.oms.model.entity.chan;

import lombok.Data;

import java.io.Serializable;
import java.util.Date;

/**
 * 类描述：
 *
 * @author lhl
 * @date 2020/12/28 15:22
 */
@Data
public class FacadeMessageEvent implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * 最大消息年龄
     */
    public static final int MAX_AGE = 3;

    /**
     * 事件标签-订单事件
     */
    public static final String EVENT_TAG_ORDER = "event_order";
    /**
     * 事件标签-补录订单事件
     */
    public static final String EVENT_TAG_REORDER = "event_reorder";
    /**
     * 事件标签-投诉事件
     */
    public static final String EVENT_TAG_COMPLAINT = "event_complaint";
    /**
     * 事件标签-预警事件
     */
    public static final String EVENT_TAG_WARN = "event_warn";
    /**
     * 事件标签-其他事件
     */
    public static final String EVENT_TAG_OTHER = "event_other";

    /**
     * 消息key
     */
    private String mqMsgKey;
    /**
     * 指明本消息事件涉及的分类，见本类中 EVENT_TAG_xxx 常量
     */
    private String tag;
    /**
     * 指明本消息事件中的渠道消息的具体功能，不同渠道自行定义
     */
    private String fun;
    /**
     * 渠道接入口ID
     */
    private int facadeId;
    /**
     * 渠道ID，facadeId为 OpenAPI 时要求必填，其他情况非必填
     */
    private Integer channelId;
    /**
     * 线索ID
     */
    private Long clueId;
    /**
     *啄木鸟订单ID，此字段与 clueId 字段互斥（clueId有值时，本字段无效），且优先级低于 clueId
     * 用于兼容未使用渠道门户API接入的订单
     */
    private Long zmnOrderId;
    /**
     * 指明消息处理失败时，是否触发重试机制，2：是，默认值：2
     */
    private int retriable = 2;
    /**
     * 消息年龄，本消息携带的信息，每被消费一次，消息的年龄增加1。默认值：0
     */
    private int age = 0;
    /**
     * 消息的编号
     */
    private Integer messageNo;
    /**
     * 消息体
     */
    private String content;
    /**
     * 操作时间
     */
    private Date opTime;
}
